package AccionBoton;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.List;

import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JRootPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

import modelUtil.Configuracion;
import modelUtil.Util;
import paginas.MenuUsuarioBarridoTab;
import paginas.MenuUsuarioDatosTab;
import paginas.MenuUsuarioVozTab;
import paginas.PaginaEntornoCreacion;
import usuario.usuarioTO.UsuarioTO;
import fachadaUsuario.delegate.UsuarioFacade;

public class AccionGuardarUsuario implements ActionListener{


	private JTabbedPane _panel;
	private PaginaEntornoCreacion _frame;
	private String _edit;
	
	public AccionGuardarUsuario(JTabbedPane panel, PaginaEntornoCreacion frame,String edit){
		
		_panel = panel;
		_frame = frame;
		_edit = edit;
		
	}
	

	public void actionPerformed(ActionEvent evt){
		
		int index = _panel.getSelectedIndex();
		MenuUsuarioDatosTab _tab1;
		MenuUsuarioVozTab _tab2;
		MenuUsuarioBarridoTab _tab3;
		UsuarioTO usuario = new UsuarioTO();
		UsuarioFacade fachada = new UsuarioFacade();

			
			_tab1 = (MenuUsuarioDatosTab)_panel.getComponent(0);
			if(_edit.equals("Si")){
				usuario = _tab1.get_user();
			}
			JTextField t1 = _tab1.getTexto1();
			if(!t1.getText().isEmpty()){
			usuario.setNombre(t1.getText());
			if(_tab1.getImagen()!=null){
				
				usuario.setImagen(Configuracion.instancia().getDirUsuarios()+usuario.getNombre()+"//"+_tab1.getImagen().getName());
			}
			
			
			}

		
			_tab3 = (MenuUsuarioBarridoTab)_panel.getComponent(1);
			
			if(_tab3.getBoton1().isSelected()){
				
				usuario.setBarrido("No");
			}
		
			if(_tab3.getBoton2().isSelected()){
				
				usuario.setBarrido("Si");
				JComboBox caja = _tab3.getDesplegable();
				usuario.setTiempoBarrido(caja.getSelectedItem().toString());
				
			}
			
			JRootPane padre = (JRootPane)_panel.getRootPane();
			JDialog abuelo =(JDialog)padre.getParent();
			if(_edit.equals("Si")){
				fachada.CambiarDatosUsuario(usuario);
				List <String> usuarios = fachada.ListarUsuarios();
				_frame.getListModel().removeAllElements();
				for(int i=0; i<usuarios.size();i++){
					if(!usuarios.get(i).equals(".svn")){
					_frame.getListModel().addElement(usuarios.get(i));}

				}
				
			}else{
			fachada.CrearUsuario(usuario);
			_frame.getListModel().addElement(usuario.getNombre());
			_frame.repaint();
			}
			try{
			Util.copyFile(_tab1.getImagen(), new File(Configuracion.instancia().getDirUsuarios()+usuario.getNombre()+"//"+_tab1.getImagen().getName()), true);}catch(Exception e){
								
			}
			
			abuelo.dispose();
			_frame.requestFocus();
	}
	
		
	
}
